﻿#ifndef __COLUMNCHART_H__
#define __COLUMNCHART_H__


#include <QWidget>
#include <QPainter>
#include <QBrush>
#include <QPen>
#include <QPropertyAnimation>
#include <QMap>

enum class FloatMode
{
	FloatDown,
	FloatUp,
	FloatLeft,
	FloatRight,
};

class ColumnChart : public QWidget
{
	Q_OBJECT
private:
	//指标数据
	QMap<QString, double> chart_value;
	//指标颜色
	QMap<QString, QColor> chart_color;
	//图表宽度（需要预留大小）
	int chart_width;
	//图标高度（需要预留大小）
	int chart_height;
	//条状宽度
	int width_column;
	//y轴最大值
	double y_max;
	//x轴最大值
	double x_max;
	//浮动动画
	QPropertyAnimation* float_animation;
	//当前比例
	double float_rate;
	//浮动模式（true时为比例浮动，false时为匀速浮动，比例浮动时不同高度的统计条浮动速度不同，最后同时浮动完成；匀速浮动则以相同的速度浮动）
	FloatMode float_mode;
public:
	explicit ColumnChart(QWidget* parent = nullptr);
	void addData(const QString& desc, double value, const QColor& color);
protected:
	void paintEvent(QPaintEvent* event) override;
	void resizeEvent(QResizeEvent* event) override;
	void mousePressEvent(QMouseEvent* event) override;
};




#endif // !__COLUMNCHART_H__
